
/*
 * @项目名称: 模板开发
 * @FilePath: /meek/src/main.js
 * @Author: 
 * @Date: 2017-03-23T11:12:12+08:00
 * @LastEditors: 
 * @LastEditTime: 2021-08-30T09:08:22+08:00
 * Copyright (c) 2018-2022
 */

/**
 * Created by zypc on 2016/11/28.
 */

import {Config} from 'meek/config'
import Counter from 'utils/counter'
import Helpers from 'utils/helpers'
import Obj from 'utils/obj'
import {Math} from 'utils/math'
import {Coordinate} from 'utils/coordinate'
import {Canvas} from 'utils/canvas'

import GeometryUtil from 'geometry/support/geometryutil'
import {ExtentUtil} from 'geometry/support/extentutil'
import {CubeUtil} from 'geometry/support/cubeutil'
import {EventType} from 'meek/eventtype'
import {Style} from 'style/style'

import Event from 'core/event'
import EventManager from 'core/eventmanager'

import Geometry from 'geometry/geometry'
import Extent from 'geometry/extent'
import Point from 'geometry/point'
import Line from 'geometry/line'
import Polygon from 'geometry/polygon'
import MutilPolygon from 'geometry/mutilpolygon'
import Cube from 'geometry/cube'
import Parallelogram from 'geometry/parallelogram'
import TiltRectangle from 'geometry/tiltrectangle'
import Circle from 'geometry/circle'
import Ellipse from 'geometry/ellipse'

import {ImageState} from 'lyr/image/imagestate'
import {ImageEvent} from 'lyr/image/imageevent'
import SingleImage from 'lyr/image/singleimage'

import PointStyle from 'style/pointstyle'
import LineStyle from 'style/linestyle'
import FillStyle from 'style/fillstyle'
import TextStyle from 'style/textstyle'

import FeatureLayer from 'lyr/featurelayer'
import SingleImageLayer from 'lyr/singleimagelayer'
import TileLayer from "lyr/Tile"
import TileImage from "source/TileImage"
import TileDebug from "source/TileDebug"
import CanvasLayer from 'lyr/canvaslayer.js'
import Draw from 'components/draw'
import DrawEvent from 'components/drawevent'
import Select from 'components/select'
import Modify from 'components/modify'
import DragPan from 'components/dragpan'
import MouseWheelZoom from 'components/mousewheelzoom'

import BrowserEvent from 'meek/browserevent'
import SelectEvent from 'components/selectevent'
import FeatureEvent from 'meek/featureevent'
import ModifyEvent from 'components/modifyevent'

import Control from 'control/control'
import Zoom from 'control/zoom'

import Feature from 'meek/feature'
import Map from 'meek/map'
import View from 'meek/view'
import Overlay from 'meek/overlay'

import GeoJSON from 'data/json/geojson'

import intersects from 'geometry/analysis/intersects'
import splitPolygonByPolyline from 'geometry/analysis/splitpolygon'
import contains from 'geometry/analysis/contains'
import polygonWithHole from 'geometry/analysis/polygonwithhole'


import LineRender from './renderer/render/linerender';
import PointRender from './renderer/render/pointrender';
import PolygonRender from './renderer/render/polygonrender';
import {drawPoint} from './renderer/render/drawPoint';
import { Transform } from './data/matrix/transform'

import Projection from "./utils/proj/Projection";

const version = VERSION

export default {
  Config,
  Coordinate,
  Canvas,
  Event,
  SelectEvent,
  FeatureEvent,
  ModifyEvent,
  EventManager,
  Counter,
  Helpers,
  ImageState,
  ImageEvent,
  SingleImage,
  Geometry,
  Extent,
  Point,
  Line,
  Polygon,
  MutilPolygon,
  Circle,
  Cube,
  Parallelogram,
  TiltRectangle,
  Style,
  PointStyle,
  LineStyle,
  FillStyle,
  TextStyle,
  FeatureLayer,
  SingleImageLayer,
  Draw,
  DrawEvent,
  BrowserEvent,
  EventType,
  Feature,
  Map,
  View,
  Overlay,
  GeometryUtil,
  CubeUtil,
  ExtentUtil,
  Select,
  Modify,
  DragPan,
  Control,
  Zoom,
  Obj,
  Math,
  MouseWheelZoom,
  GeoJSON,
  version,
  intersects,
  splitPolygonByPolyline,
  contains,
  polygonWithHole,
  TileLayer,
  TileImage,
  Projection,
  TileDebug,
  Render: {
    LineRender,
    PointRender,
    PolygonRender,
    drawPoint
  },
  Transform,
  CanvasLayer,
  Ellipse
}
